package com.itheima.d2_reflect_class;

/**
   目标：反射的第一步：获取Class对象
 */
public class Test {
    public static void main(String[] args) throws Exception {
        // 1、Class类中的一个静态方法：forName(全限定类名：包名 + 类名)
        Class<?> class1 = Class.forName("com.itheima.d2_reflect_class.Student");

        // 2、类名.class
        Class<Student> class2 = Student.class;

        // 3、对象.getClass() 获取对象对应类的Class对象。
        Student stu = new Student();
        Class<? extends Student> class3 = stu.getClass();

        //注意：三种方式获取的Class对象，都是同一个（类只会加载一次）
        System.out.println(class1 == class2);
        System.out.println(class1 == class3);
        System.out.println(class2 == class3);
        //地址都一样，Class对象是同一个
    }
}
